<?php
// 只有在配置服务器的时候会用到-----
// // 创建一个字符串来存储token值
// $token = "xiaojidunmogu";
// // 接收微信发送过来的各种参数
// $timestamp = $_GET["timestamp"];//时间戳
// $nonce = $_GET["nonce"];
// // 定义一个数组
// $array = array($token,$timestamp,$nonce);
// // 将数组按照字符串进行排序
// sort($array,SORT_STRING);
// // 将数组合并成字符串
// $str = implode($array);
// // 对字符串进行加密
// $sign = sha1($str);

// // 得到传过来的签名
// $signature = $_GET['signature'];
// // 判断是否 来自微信的请求
// if ($sign == $signature) {
//     echo $_GET["echostr"];
// }
// ----------————————————

// 用户点击按钮的时候 会把消息推送到此文件
// 得到原生的postdata 


$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

// 判断是否为空
if (!empty($postStr)) {
	// 检测XML文件是否合法
	libxml_disable_entity_loader(true);
	// 解析xml文件 并把它转化成对象
	$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
	// 获取事件类型
	$msgType = $postObj->MsgType;
	// 对各种事件进行判断
	switch ($msgType) {
		// 假如是event 
		case 'event':
		echo handleEvent($postObj);
			break;
		// 假如是文本
		case 'text':
		echo handleText($postObj);
			break;
		case 'image':
		echo handleImage($postObj);
			break;
        case 'video':
        echo handleVideo($postObj);
            break;
		default:
		echo "";
			break;
	}
}
function handleVideo($postObj){
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $timestamp = time();
    $mediaid = $postObj->MediaId;
/* 
    $str = <<<AAAA
        <xml>
    <ToUserName><![CDATA[$fromUsername]]></ToUserName>
    <FromUserName><![CDATA[$toUsername]]></FromUserName>
    <CreateTime>$timestamp</CreateTime>
    <MsgType><![CDATA[video]]></MsgType>
    <Video>
    <MediaId><![CDATA[5oDaW_vcw4KcdvO0zbez--8yyNDxqsmtrOwxxSlrbZOwLev64b6pmQ4easM4kusS]]></MediaId>
    </Video> 
    </xml>';
AAAA;
    return $str;
*/
    $str = <<<AAAA
  	<xml>
	<ToUserName><![CDATA[{$fromUsername}]]></ToUserName>
	<FromUserName><![CDATA[{$toUsername}]]></FromUserName>
	<CreateTime>$timestamp</CreateTime>
	<MsgType><![CDATA[image]]></MsgType>
	<Image>
	<MediaId><![CDATA[5oDaW_vcw4KcdvO0zbez--8yyNDxqsmtrOwxxSlrbZOwLev64b6pmQ4easM4kusS]]></MediaId>
	</Image>
	</xml>
AAAA;
	return $str;
}

// 处理event类型事件的函数
function handleEvent($postObj){
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $timestamp = time();
    $event = $postObj->Event;
    switch ($event) {
        case 'CLICK':       
            $eventKey = $postObj->EventKey;
            // 如果是发送文字
            if ($eventKey == "sendText") {
            $str = <<<AAAA
        <xml>
        <ToUserName><![CDATA[$fromUsername]]></ToUserName>
        <FromUserName><![CDATA[$toUsername]]></FromUserName>
        <CreateTime>$timestamp</CreateTime>
        <MsgType><![CDATA[text]]></MsgType>
        <Content><![CDATA[你戳疼我了]]></Content>
                    </xml>
AAAA;
            // 返回给用户
            return $str;
            }elseif ($eventKey == "sendImage") {
            // 如果是发送图片
            $str = <<<AAAA
            <xml>
	<ToUserName><![CDATA[{$fromUsername}]]></ToUserName>
	<FromUserName><![CDATA[{$toUsername}]]></FromUserName>
	<CreateTime>$timestamp</CreateTime>
	<MsgType><![CDATA[image]]></MsgType>
	<Image>
	<MediaId><![CDATA[5oDaW_vcw4KcdvO0zbez--8yyNDxqsmtrOwxxSlrbZOwLev64b6pmQ4easM4kusS]]></MediaId>
	</Image>
</xml>
AAAA;
	return $str;
            }
            break;
            // 关注事件
    case 'subscribe':
        $str = "<xml>
    <ToUserName><![CDATA[$fromUsername]]></ToUserName>
    <FromUserName><![CDATA[$toUsername]]></FromUserName>
    <CreateTime>$timestamp</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[欢迎你的关注，在这里你可以学习到各种没羞没臊的新姿势！]]></Content>
    </xml>";
        return $str;
            break;
        default:
            break;
    }
}

// 处理文本类型的函数
function handleText($postObj){
	$fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $timestamp = time();
    $Content = $postObj->Content;
    if ($Content=="你是猪吗") {
    	$Content = "你才是猪";
    }elseif ($Content == "我是猪") {
    	$Content = "你真是猪";
    }
    $str = "<xml>
 	<ToUserName><![CDATA[{$fromUsername}]]></ToUserName>
 	<FromUserName><![CDATA[$toUsername]]></FromUserName>
 	<CreateTime>$timestamp</CreateTime>
 	<MsgType><![CDATA[text]]></MsgType>
 	<Content><![CDATA[{$Content}]]></Content>
 	</xml>";
	return $str;
}


function handleImage($postObj){
	$fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $timestamp = time();
    $mediaid = $postObj->MediaId;
    $picurl = $postObj->PicUrl;
    $str = "<xml>
 	<ToUserName><![CDATA[{$fromUsername}]]></ToUserName>
 	<FromUserName><![CDATA[{$toUsername}]]></FromUserName>
 	<CreateTime>{$timestamp}</CreateTime>
 	<MsgType><![CDATA[image]]></MsgType>
 	<PicUrl><![CDATA[{$picurl}]]></PicUrl>
 	<Image>
 	<MediaId><![CDATA[{$mediaid}]]></MediaId>
 	</Image>
 	</xml>
    ";
    return $str;
}














 ?>
